This version history is directed mostly towards people with atleast basic programming knowledge, however anyone can find a thing or two to laugh at. It is best viewed using a monospaced font like Monaco-9.
Conventions used in this version history:
* means a bug fix (it may also state the bug if it was discovered in the
same release as the bug fix was implemented in)
+ means a new feature or a changed feature
- means a feature has been removed
? means a possible feature
> means a feature that _will_ come
@ means a bug that has been discovered and not fixed in this release
+ The purple alien shots have been changed to a bit brighter colors.
+ Hyperspeed no longer requires the display to be set to 832x624 or lower
resolution (yay!).
+ Hyperspeed now uses Apple's DrawSprocket for resolution changing. Begone
DDD (Digital Desktop Destroyer).
1.1b5
+ All the screens containing copyright info have been changed to reflect
that it is now 1999.
* The paused screen bug has been fixed.
@ Hyperspeed doesn't run correctly under some resolutions. I don't know why.
1.1b4
+ The spinning devils that attack you now have a bluish tint in their "crust."
1.1b3 - Hopefully fixed some bugs with the screen stuff added in 1.1b2.
1.1b2 - This beta incorporates more screen stuff and more fixes, as well as changed graphics on the ship's shield and slight modifications to the easy level.
1.1b1
+ Full mousemovement support has been added, with ability to select if
all weapons, the main weapons or only the grenade is fired by the mouse
button, as well as sensitivity controls (high, medium, low).
+ A new difficulty level has been added. This is what I call the easy level,
and it is very easy. You can get up to four bonuses on one level, and the
bonuses appear much more frequently. Also, each alien can take fewer hits
and the shield lasts longer. Very nice indeed :)
+ Hyperspeed now draws the 1 Up text when you pick up a regular extra life
in addition to the ones you may receive by picking up the question mark
bonus.
+ Hyperspeed has improved multiscreen handling, though a bit buggy right now.
* You now no longer receive the tripple shots when selecting new game via the
File menu or by pressing Command-N. This was a developmental bug, and used
as a shortcut by me to test the shots without needing to go through that
pesky cheat box each and every time... (Cheat box? What cheat box? ;) )
1.0.2
* A bug with keyboard was fixed. Previously, you could go left/right at the
very bottom/top of the screen and then keep either the up/down key pressed
to make the ship keep moving either left or right, without using the left
or right movement keys.
1.0.1
+ Basic mousemovement capabilites have been added.
1.0 - It is finally here! After more than one year in development, I have finally completed Hyperspeed. I feel rather content right now :) (Also, I'm quite impressed by the volume of this version history...) This release has 50 levels, the final one having a record breaking number of aliens. It's pretty hard as well... Enjoy!
+ Aliens which track the ship (kAlienTrackShipAIType) can now have a
delay before appearing, in addition to the number of aliens killed delay.
This delay is set by using the pathID field.
+ Some additional changes to the AI engine, giving other AI types access to
the delay function as well, either through the pathID or targetIndex fields.
* Each alien can now reappear only once on the very hard difficulty level.
* The break-off-and-attack code now allows for aliens using the towards ship
pattern type to, well, break off.
* Fixed a bug on the 33 level, with wrongly assigned group numbers.
0.8b - This is going to be the final beta...
+ Two new alien explosion sounds, one sound for grenade firing, and one
for the level completed screen.
+ Enter/return now selects Save settings on the prefs screen.
+ The needle alien has had its movement constants slightly altered. It is
now identical in movement to the tracker alien.
* You no longer get an "extra" life if you die without any at the very end
of a level.
* Hyperspeed now checks for high scores again (a bug prevented this in
v 0.7b).
* Fixed a number of problems with the extended drawing mode, including
a bug which, in effect, caused it not to work. I think I have also managed
to fix the problems with pixel residue.
* Fixed a bug in the cheat dialog, related to "false clicks."
* You can now get an extra life if you go above, for instance, 50 000 points
during the level summary screen. This was previously "not so."
* Fixed a potential drawing bug with extended drawing on screens larger than
640x480.
0.7b - I have to date not been able to complete Hyperspeed with its current set of levels (35 in all). I was thinking that I should have 60 levels, but perhaps that may be a bit too much. Time will tell, I guess. Making levels isn't exactly the funniest thing I know of (I think the funniest part is in the naming). Now, what should the end-game-gimmick be?
+ Added and changed some sounds. Hyperspeed now plays a "level completed"
sound and a bonus pick-up sound, in addition to all the "oldies." In
addition, the ship explosion sound has been changed.
+ I've added a "demo" mode, which sort of displays the game. It kicks in
about 30 seconds to 2 minutes after the game has been started. For the
moment, it is also possible to access it by pressing 'D'. It's quite
fun to watch the SSC's tactics (or lack thereof..).
+ The alien appear sound has been changed (not the disappear sound, though).
+ The explosions now fade away, as opposed to previously when the individual
particles just sort of disappeared. This effect applies to _all_ parts
of the game that uses the explosion engine (which basically means the
alien and ship explosions, as well as the appearing/disappearing alien
vortexes). I wonder if that was the correct plural form of "vortex"...
+ I have added a new alien. It was actually meant as a replacement for the
alien scout, but I didn't like it's appearance in such numbers. I've
called it the needle alien, and with it comes a new aliens shot. The
sweep shot.
* Hyperspeed now plays an explosion sound when the ship crashes into an
alien while the shield is active.
* Bonuses should no longer appear to the very left of the screen when you
killed an alien some other place on the screen. The bug hasn't been
removed (I don't know what causes it), but the function actually
creating the bonus has been made to check for this and return if the
bonus' appearing location is less than 0 for either the vertical or
horizontal direction.
* The first spinning devil is in fact introduced on the second level, not
on the fourth, as I previously stated. My fault! Not that much of a bug
fix really, more of a correction to this version history. (Gotta have the
facts right!)
* I have received positive feedback from my beta testers about the resolution
changing code. However, there was a bug in the code which caused all
drawing to be offset in relation to the previous screen size. This has now
been fixed, and the game should once again be playable.
0.6b - I'm really annoyed at the 1024x768 screen bug. I have no idea how to fix it. Atleast now I _may_ have code that switches resolution -- but does it work? That's the really big question here at Yellow Lemon Software at the moment.
+ I removed the spinning devil from the first level. It may be a bit too hard
for beginning Hyperspeed players, and I don't like it that much myself
either... It is now introduced on the first sweeper level (4).
+ I've added code to handle monitors larger than 1024x768 by changing the
resolution. Now, all I need to know is if it works or not...
+ Well, what do you know... A new alien! This new alien is of the kind that
fires shots that are very hard to avoid -- after all, the shots _do_ track
you all around the screen...
+ Updated help-screen to reflect the new alien.
+ YES. Hyperspeed now has difficulty levels! You can select between normal
(which is how hard the game has been so far), hard and very hard. The
aliens fire more often with increasing difficulty levels, as well as
increased "break off" probability. The maximum number of aliens
breaking off from a pattern increases from one to two or three, depending
on the level of difficulty. In addition, on the very hard level, dead
aliens have a nasty tendency to re-appear (though they only take one shot
to kill).
+ Hyperspeed now checks the serial number (if any) at start up.
* The static star-background is now updated correctly after the game has
been paused.
* The menubar is now shown immediately after a game ends if the mouse is
within the menubar area. This was previously "not so".
* If you have a long name, the entire name is no longer displayed beyond
the boundaries of the registration box on the main screen. The final part
of the name is instead substituted with three dots (...). I am not going
to try the "intelligent" way of doing this by first trying to make the
text tighter through the condensed font style. No thanks.
0.5b - I have some ideas for radically improved collision detection. In theory, it would work like this: The ship/alien/whatever is represented as a 1-bit mask where the ship/alien/whatever is the "black" part. Then, if a bonus/bullet/alien enter the ship's bounding rect, a second collision detection routine would be called. This routine would do the following:
1) Copy the 1-bit ship-mask to a gworld.
2) Calculate a "checksum" of _only_ the black pixels (sort of a count, in its simplest incarnation) in that gworld.
3) Copy a _white_ "copy" of the bullet to the gworld, the calculate another checksum. Since the bullet is white, if it hit the ship, the checksum will be different from the one calculated in 2), since the number of black pixel will have changed. Thus a collision has occured. Otherwise, the checksum will be equal to the one found in 2), and no hit was detected. Neat, huh? Atleast in theory... Now, if I only could manage to implement it... (Which I won't, since it'd take too much time...)
+ I have settled on an algorithm to calculate serial numbers. Woo-hah!
+ Added an icon for the Hyperspeed folder, by the request of one of my
beta testers. (You know who you are!) Not a stupid suggestion, I might
add...
+ Still more levels.
+ Refurbished Credits-screen.
+ Partially redone about box with scrolling credits.
- I attempted to introduce the same drawing principles to the SSC's shots as
the one used with the aliens, but it turned out to be considerably slower
than what I expected, therefore I removed it.
* You can now no longer lose both the padlock and all the other bonuses when
you pick up a luring bonus.
@ Darn, I hate that profiler! It managed to trash the process mgr heap
_every_time_ you played a game of Hyperspeed. Yuch! And I thought it was
my near-bulletproof code that had gotten a dangerous disease...
@ Graphical glitches occur sometimes, without me knowing exactly why. I think
it is related to the new drawing engine, but I'm not sure... The glitch
basically involves an alien that is not completely erased after it is
killed. I may actually have fixed it already -- that's the weirdest part.
0.4b - I don't really have anything interesting to say this time, so I'll just go straight to the mushy stuff :)
+ Yes! Finally! I have managed to work out a way to deal with flickering
that actually works quite seamlessly with Hyperspeed's current drawing
engine! Flickering between aliens (when they are so unfortunate as to move
on top of each other) has been reduced to an invisible minimum. The
solution involved _a second_ offscreen, but that's all I'm going to say.
I'm having a hard time understanding how it actually works (the way I
coded it, it really shouldn't work -- that's why I won't explain it...).
+ Added the ability to constrain a group's movement, provided the group is
using the horizontal or vertical pattern mode. This is done by using the
tagPosition.h/.v fields to specify the limits in which a group can move
in either the horizontal or vertical direction.
+ Made a number of changes to the Initially Towards Ship pattern mode, making
it work _a_lot_ better. One consequence of this is that this pattern mode
no longer requires a leader. In fact, it won't utilize the leader variable
at all -- using anything _but_ -1 will make the aliens behave weird. This
also lead to a new level, and major changes to level 10.
+ Changed the seed for the QuickDraw random number generator from using
TickCount() to a TickCount()/GetDateTime() based seed. The game is
surprisingly more varied now.
+ You can now hold the command key down at startup to disable all the breaks
(ie. run the game as fast as your Mac can). Also, your can have the option
key pressed while starting up Hyperspeed to display an FPS counter at the
bottom left of the screen.
* Hyperspeed now no longer exits the current game when you pause twice.
Lucky thing I discovered that one!
* Fixed a bounds check error in the startup code. It wasn't a necessary
bug fix -- the code would behave the same way with or without it.
* Fixed some bugs that were introduced with the new group containment mode.
* The menubar now hides immediately after a selection has been made. This
fixes a bug which would cause only parts of any given screen to draw (ie.
the part covered by the menubar would not be drawn).
* Removed some redundant timechecks.
@ Hyperspeed does not run correctly under 1024x768 (and probably resolutions
above that too). I don't know why yet.
0.3b - I think I'll be about ready to go GM soon... ;) Maybe not. This is the first release to go out to a larger number of beta testers than two (woo-hooo!).
+ Reworked the hiliting buttons on the settings screen. You now get visual
feedback when you click a button (that is, either the Config keys, Default,
Cancel or Save button).
+ You can now select default settings on the settings screen.
+ The Hyperspeed interface change has been finalized, with the Registration
info screen being the last one to get a face-lift.
+ If you have multiple levels files, you can select which one to use by
double clicking it. This will cause Hyperspeed to "open" the file. If
you want to switch levels files while Hyperspeed is running, just send
Hyperspeed to the background and double click the new levels file. It's
not the perfect solution, I know, but it works.
+ The aliens on help screen #3 now animate. Pretty neat.
+ The SSC now has shields. They are turned on only after a recent crash,
to allow the pilot to re-prepare for action.
+ Hyperspeed now draws the kind of bonus you receive when you pick up the
question mark. I had some problems with that one a while, with flickering
and stuff. It's not entirely gone either. Oh well.
+ The title screen has been changed. Again. This time really for the better,
more in style with the Hyperspeed interface, I guess...
- Removed support for changing of sound volume. It will most likely be
re-added, using + and - to control sound volume. The sound volume will
also be changed in software, as opposed to in hardware (that is, the
system volume is not affected by changing the sound volume in Hyperspeed).
* Fixed a few errors on the bonus help screen.
* You no longer get a hiscore when you cheat by starting at the first
level and selecting any or all of the weapons. Should you decide to
start at level one without any weapons (by going via the level select
dialog), you will still get a hiscore (after all, you didn't cheat!).
@ Pixel residue when the SSC crashes with a green, tracking shot. I don't
know why, and I presently don't consider it a high priority to fix it,
as it doesn't seem to happen that often.
@ Hyperspeed has a "memory" problem. When you have completed a game and
entered a high score, any attempts to bring up a dialog will fail (for
instance, the about box or the key config). I'm not sure why, but it is
fixed by going to a different screen and then returning. Weird.
0.2b - Another "large" beta, this one also incorporates a lot of changes to the level editor. The level editor is now capable of creating level bundles, it has a much better GUI, its own LDEF (I wrote it!) and some additional level control (ie. you can now change the laws of physics). The level editor also makes use of the Navigation Services (if available).
+ More levels. Levels can now have their own name, though this name won't
be displayed by Hyperspeed, only by the level editor.
+ All uses of the gwSet() class are now allocated and deallocated
dynamically, thus reducing the potential for memory leaks.
+ Another help screen has been added, this one detailing how to play.
* Quite a number of bugs were fixed in the kLeaderAIPattern module, which
has resulted in it working the way it is supposed to... I also discovered
a few bugs on the (so far) two levels that utilizes this pattern type
(these were not software bugs, but design problems on those levels, 5 and
12).
0.1b - As promised, the first beta! This version doesn't really sport that many new "visible" features, it's more of an under-the-hood kind of update. That is, apart from the padlock bonus addition ;) In fact, I also added a new alien, the Swifter (see below).
+ The sound volume can now be changed by using the number keys. I have to
find a better way of doing this, though, since the entire game stops for
about a second while the volume is being changed. I also need to figure
out a way to differentiate between keypresses on the main keyboard and
on the number keyboard island.
+ Added the padlock bonus! No more losing all those power-ups with this
little beauty!
+ Updated the help screen on bonuses to reflect the new bonus.
+ Changed the probability for either an extra life, luring or padlock
bonus appearing.
+ Added AppleEvent handling, so when Hyperspeed is asked to quit by, for
instance, the Finder, it will.
+ Hyperspeed now loads its levels from a file called "Hyperspeed Levels"
(without the quotes) if it exists. If not, it will try to load them
from the internal copies within the app, and if that doesn't succeed,
it displays an error message. Wow. The levels file search isn't quite
perfect yet, as it will choose any file with that name. I need it to
recognize only files of type HSLv/HSp∂, and without IM: Files I'm lost...
Thank God for the Apple online tech info library.
+ You can now cheat using the change level dialog. You can add any weapons
to your arsenal, and you'll have them on the level you start on. Pretty
neat, actually :) Oh, and I updated that change level dialog to reflect
the triple shots. I even added some small icons :)
+ Changed the probability (sort of) again for the padlock, luring and
extralife bonuses. I know I already stated that I'd changed them above,
but I thought I'd mention it once more... The changes are equal to each
other, but the effects are more or less the same. (Basically, I changed
an if...else...else statement.)
+ You are now given a bonus when you're supposed to have one. (Incredibly
well put.) This is because Hyperspeed now checks if you have all the shot
bonuses, and if so, it will loop until it finds a different bonus to give
you.
+ Made some changes to the speed at which some aliens are able to turn. More
specifically, I allowed the cloaker to move more swiftly, while the rest
still move as before.
+ Made the above change more comprehensive, allowing the Cloaker to move
_faster_ as well. Speedy little bastards! But that isn't all... I also
added a new alien -- the Swifter (scary background music running..). It
is almost twice as fast as your regular scout, and is incredibly hard
to tackle. Four or more of these, and you'll be dead before you know it!
* Reduced the number of aliens on level 1 by one, and increased the spacing
between the remaining aliens. This was done to help ease the job of the
attack AI. Unfortunately, it didn't work. But the level is still changed,
though...
* More of a graphical glitch this one. I forgot to update the status bar
below the playing area when I added the triple shot bonus. This has now
been done.
* The break-off-and-attack part of the AI has been improved. How? I now
initialize a variable that I previously forgot to initialize. This
variable is crucial when it comes to deciding where the alien "aims" at
first. The point is, that this should probably fix quite a number of
ugly alien overlaps.
0.6a - More bug fixes. As usual, I guess. I should probably start having beta versions instead of these pesky alphas, since the basic framework and stuff is pretty much complete now. This has been a rather tiny update, it appears...
+ Key configuration! Yes, that's right, I finally got it working. It has
been moved into its own dialog, and it works pretty well. Ahh, one less
thing to worry about :)
+ The Preferences screen has been changed to reflect the changes to the
key configuration.
+ Made some very minor changes to level 2 and 9, while also adding level 14.
+ You can now get up to _two_ bonuses on one level! Wow, that's incredible!
(Well, maybe not... It may be gone in the next version...)
* The final adjustments (apart from the registration code algorithm) has
been made to the registration engine. The main screen update routine has
been made "stand-alone", ie. I now no longer have code to draw the
main screen repeated n times all over my code.
> Button hiliting on the Preferences screen.
> An additional help screen detailing the game, tactics, etc.
0.5a - The tripple blaster seems to be working out quite nicely. I am going to add some more sounds soon. Gameplay seems to be quite OK for the moment... Lots
of bug fixes in this release, and quite a number of features added as well. I guess I must be nearing on completion now :) I'm actually quite pleased with the whole level-thing and all. I'm really content with the content right now (no pun intended (yeah, right!))...
+ The Extra Life and Luring bonuses have been added. The extra life does
exactly what the name implies, while the luring bonus "gives" one of
four things: 1) an extra life, 2) either 2000 or 5000 points, 3) deducts
5000 points or 4) destroys all your weapons, leaving you with your plain
ol' and simple plasma gun. It can mean the difference between life and
death...
+ You now get double points for an alien that is not part of a group using
the pattern AI. Previously, you would get <numOfPoints> + <numOfPoints/2>,
that is, 1 1/2 times the points you'd normally get.
+ You get a time bonus when you complete a level! The bonus is calculated
like this: bonus = number of aliens * (1000 / time in seconds). This, of
course, also means that the level completed screen has been slightly
altered. It sure is nice to know how much time a level took to complete...
+ A new, vertical AI pattern has been added. Basically, it bases itself upon
the code used by the horizontal pattern, with minor changes. To use, set
pattern to simple pattern and pathID to 0. If pathID is -1 or 1, the
horizontal pattern version is used.
+ The Credits screen has been updated. It now gives credits to some
additional people who were not credited on the old credits screen (did I
really have to clarify that?).
+ Added the YL Register Module, thus implementing the You haven't registered
dialog thingies. Maybe not necessary yet, but it's nice to have it there
anyway. It's working flawlessly, now all I need to do is come up with
an algo to calculate reg-codes... (And, no, I'm _not_ putting it in here.)
The registree's name and reg-code is also drawn to the screen. This also
includes drawing of the number of copies bought.
* Fixed a bug where the Game paused screen is not updated after the screen's
number of colors have been changed (for instance using the ControlStrip).
* The menubar now updates itself when it is shown on the main screen.
* Pixels from the starfield no longer occupies the menubar area on the main
screen if the user changed screen settings while the game was paused. That
was an annoying little bug.
* Fixed some "bugs" in the Level Editor. They weren't really bugs, just
design flaws. Also made the editor vertical AI pattern savvy.
* Fixed a bug caused by the new extra-life-when-number-of-points-are-more-
than-... which would give the player infinite lives if he/she had negative
points when he/she died. It was kind of cool watching those lives spin up
to 99 in a counter-sort-of fashion, but the game did get just a little bit
too easy at that point...
@ Sometimes, the aliens will all go completely crazy and the drawing of them
will fail partially (parts of the alien is not erased). If you manage to
kill them all, the level will not go ahead as programmed (by either going
to the next level or by bringing in the next wave of aliens). I think I
fixed it, but I don't have a clue if I _really_ did. I just took a long
shot and now I hope for the best...
0.4a - Well, not too much progress lately.
+ The double fire bulbs have been replaced with the triple blaster. Waaay
cool! Why didn't I think of this before?
+ Help screens w/control interface has been added. Finally :)
+ A sound was added. This sound is played when the user clicks a greyed-out
item on two of the help screens.
* The grenade's dispersion directions has been fixed -- previously, one
of the directions would be covered by four shots. In addition, the
grenade now only releases 22 high speed fragments... This may be reduced
to 15 due to problems with slow downs on lower end systems (such as mine).
* Not really being a bug, more of a graphical glitch, the radio buttons on
the settings screen are now displayed correctly (the ones in the Settings
pict and the ones in the cicn were different).
0.3a - I recently released the breaks off of Hyperspeed. That was a wild ride...
When the screen was empty (and the SSC dead and gone), the game clocked in at nearly 3000 fps. It ran at a (more or less) stable 300-500 fps when the aliens and ship were on screen -- not too bad, I guess. Suffice it to say that I have now put the breaks back on... (FYI, I have a Performa 6320 @ 120MHz with a 603e processor.) My conclusion from this experiment is that the star blitter is pretty god damn efficient...
+ Hyperspeed now refuses to run if it is "too old". That is, the alpha/beta
versions will expire within a given time frame.
+ Major optimizations to the drawing engine.
+ The ControlStrip is hid when Hyperspeed is run. Atleast in principle,
for some reason it doesn't work all the time.
+ Hyperspeed now checks to see if the user has changed the number of colors
on screen, and changes it back if this has happened.
* Some bugs have been fixed in the high scores code -- the resource size
wasn't being updated at all, leading to some weird errors. Good thing
I catched that one.
* Fixed a bug which would cause Hyperspeed to draw negative points when
the player had more than 32767 points. The actual number of points were
stored as a long, but the drawing routine only accepted a short... Bummer.
This bug also applied to adding/checking high scores.
@ The code to hide the ControlStrip works fine, however, the ControlStrip
does interfer with the normal workings of Hyperspeed. I don't know what
causes this, so I won't think to much more about it.
@ Discovered that I didn't initialize QuickDraw's random number generator.
That has now been fixed.
0.2a - More levels on the way... The level editor has received some minor interface improvements (welcome ones, I might add). Fixed some "bad language" (and I'm not talking about swearing) in this version history. I've also noticed that the word occuring most in it is "cool". I really need to expand my vocabulary. The big question right now is "will I add mouse movement support?"
+ A new AI mode has been added (or more correctly, a new AI mode subset). It
allows aliens in a pattern to be controlled by an alien that is not using
a pattern AI, but rather the alien track ship AI, for instance. It makes
for some very neat variations, and saves me a lot of work.
+ A number of potential bugs have been fixed in the sprite blitting engine
(I wasn't taking advantage of a feature I implemented in the actual
blitting function).
+ Full sound support (I finally worked out the bug in the YL-ShellCodeLib --
it was a really stupid one too). Now, all I need is sounds...
+ Sounds are played when
: an alien die
: a bonus appears
: when you're game over (two different ones)
: when you get a high score
+ High scores have been implemented, with all the fun that implies. They are
even saved to disk as well... Incredible.
+ The main screen is now "click-sensitive", that is, you can now select
New game, Help, Prefs, etc, using the mouse. Fantastic... (Do I detect
a hint of irony?)
+ You can now receive any kind of bonus. That is, you no longer have to get
the double small shots in order to get the alternating fire balls, etc.
In effect, you can get the grenade as your first bonus :)
+ Preferences are now saved, including key settings -- even though you can
not configure the keys yet... :)
+ Moving stars can now be turned off completely, in favor of the original,
static starfield backdrop (which is quite different from the moving stars
used by the Hyperspeed star animation engine). The backdrop was used in the
absolute earliest version(s) Hyperspeed.
+ Sounds can be turned off and on.
+ The explosions have been pumped up a bit, with even more fragments. I
didn't see a reason not to, when there was virtually no speed hit.
+ The cloaking alien has been added.
- The ammunition concept has been removed. It didn't work they way I
intended anyway, and I'm too lazy to add the graphics and support required
for the ammo canisters...
* The new alien now fires shots that come from its guns, rather than the
top-left corner of the ship.
0.1a - I've started (and completed, as a matter of fact) working on a level editor for Hyperspeed. I just can't take that ugly template thing in ResEdit any longer... From now on, it's just GUI, GUI and more GUI. And better levels, of course, since I am now able to concentrate on design rather than messing about with the template. The editor is quite cool, by the way.
+ The aliens can now fire their weapons.
+ The maximum number of stars has been increased to 256, while the default
setting is still 128 (which was the previous maximum).
+ A new alien has been added. It is really cool, and it fires shots that
track the ship. Very hard indeed...
+ The "Level completed" screen has been redesigned in order to fit better
into the new interface.
+ The weapon system has been changed to an ammobased one -- I'm not sure that
I will stay with this approach, it's just a test.
* Fixed up a lot of code and finally figured out why the debugger refused to
work.
* I think I've fixed all of the bigger-than-640x480-screen bugs, after
getting hold of a lovely utility called Resolüte which changes your
screen's resolution to "unsupported" ones. My old Apple 13" suddenly
became a 800x600 monster, which allowed me to test Hyperspeed under
bigger screen conditions. Excellent!
* Yess! An alien-being-erased-leaving-pixel-residue bug has finally been
fixed. And I wasn't even looking for it...
> AppleEvent support (so that we can quit when we're told to...)
> Ability to click on selections in the main screen
> A "wormhole" alien, which will appear and disappear. This little baby will
shoot with extreme accuracy as well...
0.9d - The game is beginning to get really hard now. I had to increase the number of lives just to pass the first level... I'm not sure that's a good thing :) And
all this with only two types of aliens.
+ Bonuses on screen explode when you die (without doing damage to anything,
of course). This is to avoid getting blue shots when in effect, they
can not be used before the preceding weapons have appeared.
+ Aliens in pattern AI mode can now suddenly break of and enter into
ship track AI mode. This is what makes the game hard... And then there's
firing aliens, which I will be adding real soon now.
+ Menu support has been added. Hyperspeed can now be sent into the
background without crashing the Mac :) Who would have known that you
actually have to call Begin/EndUpdate() in order for the app to go into
the background... That one was a bitch to find.
+ The game can be paused!
+ The pattern AI has been improved, making aliens moving in a pattern slow
down before reaching the edge of the screen. Looks great (or atleast better
than before...)
+ The menubar only shows/hides when the cursor enters _the area_... (spooky!)
+ Hyperspeed has gotten a new title screen, which is sort of in fashion with
the new main screen (which was added in 0.8d, btw).
> I am going to add cheat codes :)
* The aliens no longer overlap each other, due to my genious addition to the
movement AI. It actually works really well, and on some levels you can take
advantage of it. Of course, not all the AI modes has gotten this
improvement, so under some circumstances, the overlapping is really bad.
? I'm thinking about adding support for ship movement using the mouse. I
must try... I have to give it a go...
0.8d - I've decided to ditch the uncloaking algorithm in favor of a much simpler approach. The game is really starting to take shape and I've got a lot of cool,
working stuff.
+ The aliens now "assemble" by re-utilizing the implode algorithm (which is
basically just an explode with modified vectors and speed). It looks quite
cool :)
+ I've begun adding sounds. It doesn't sound good... Basically, the sound
sucks, and for some reason, only _one_ sound plays at a time, even though
I've allocated four sound channels. Uuuhrg.
+ A new AI mode has been implemented. I call it the ship tracker, and it
works surprisingly well considering its simplicity. This new mode also
inspired me to fix the guard AI mode, which now works properly. The first
level has become very hard over the course of only an hour's worth of
work... :)
+ Hyperspeed now has a new icon!
+ Hyperspeed's main screen has been redesigned, and I'm quite confident that
the change was for the better.
@ Hyperspeed still doesn't do very well on large screens. Pixel residue
and such still plague the game. Atleast it doesn't crash!
@ Fading doesn't appear to work when used on a PM 7200 with an Apple 17"
monitor. I have no idea why, since it works on a different PM 7200 with
an Apple 17" monitor. Maybe I should try with extensions disabled... ;)
* Maybe not exactly a bug fix, but as stated above, the guard AI mode now
works correctly. Also, when aligned vertically or horizontally to the
ship/target alien, they move in a sort of wavy fashion around either the
x- or y-axis. Neat.
0.7d - I'm trying to figure out a good (and fast) algorithm to uncloak the aliens. So far, though, I haven't been very successful (either too slow or too
ugly...). I'm wondering if I will have to have them come out of some sort of vortex (saving me a lot of time). Though it wouldn't be as cool... :) I will start adding sound support real soon now.
+ Bonuses and bonus pick-up has been implemented (along with the extra points
picking up a bonus will give at the end of the level)
+ The game now ends when you don't have any lives left. It also draws the
number of lives you have left next to the ship on the far right side of
the screen.
+ The game draws what level that you are on.
+ A game over screen which displays when you're game over.
+ A working Options screen.
+ The infamous grenade has been added and is working. It now spreads 30
death-hungry high speed fragments in a circular pattern. A couple of these
clears the first level in a snap.
> I have designed a new alien, which is sort of a turret going up and down
the screen. I haven't added it to the game yet, though.
> ...and along with that alien comes a new pattern and a new AI. The new
pattern simply (you guessed it) moves the alien up and down. The new AI
enables the turret to target the ship (and with great precision too!).
This one too, of course, hasn't been implemented yet.
0.6d - I need to design more aliens. I'm still very positive towards the idea of
uncloaking aliens -- I think it will be a really cool effect once I get it
implemented.
+ Collision detection between the SSC's shots and the aliens has been
implemented. It works pretty well. The collision detection between the
ship and the aliens has also been improved.
+ Point handling and drawing has been completed.
+ Levels have been fully implemented, in the sense that Hyperspeed now.
supports multiple levels, as well as a "summary" screen in between levels
+ Levels now support several "waves" of aliens -- that is, after a fixed
number of aliens have been killed, one (or more) aliens will appear. This
also has the neat side-effect of introducing the possibility of an
end-level boss. Whether or not that will actually be a feature remains to
be seen.
> Bonuses/multipliers/point bonuses that appear when aliens are killed. This
is opposed to previously, when they just fell randomly from the top of
the screen... (Right now, appearing bonuses are not implemented.)
* The module producing alien explosions got a couple of bug fixes, mainly
relating to access fault exceptions (according to the MW Debugger).
@ Sometimes, Hyperspeed accidentaly doubles the points of one alien.
This results in Hyperspeed thinking that two aliens have been killed, and
ends the level when there are one or more aliens still left to kill.
@ Hyperspeed's handling of screens larger than 640x480 is not as good as it
could be... There are a number of small bugs that needs fixing in this
area.
@ The clut on the main screen gets screwed up on some Macs/monitors. I don't
know why this happens, but I'm trying to find a fix.
@ With many aliens on the screen, there is a distinct delay between the first
and last moving aliens. This is not really a bug, more a result of some
more or less "inefficient" blitting/drawing routines. I'm not sure that I
will prioritize fixing this bug (compared to Swoop and other similar
shoot-em-ups, the delay isn't all that long). A dirty-rect routine would in
any case be the best way to go, and would also solve the problem of
overlapping sprites.
0.5d - I'm making really good progress! The level design seems to work quite well, with the exception of my AI code, which doesn't work well at all. I have decided to use pattern movement in combination with random functions to "fake" an AI instead. I think. I'm amazed at how fast the blitters I use are, taking into
consideration that they only move one byte at a time... (and that is in addition
to stars, multiple explosions and a lot of shots!) So far, I have not used
CopyBits for anything but loading the sprites and the basic interface.
+ Collision detection between the ship and the aliens (meaning that both the
ship and the aliens can die).
+ Extremely cool implosion effect when the ship "explodes" (that should
be implodes...).
+ Preliminary pattern movement. The aliens can now follow a "leader", which
decides what heading the aliens should take. Very simple, but very much
code. I'm not looking forward to see how much code I will have to add
for _real_ pattern movement...
+ Point framework has been set up. No points are drawn to the screen yet,
though (I consider this a low priority at the time).
* All graphics work correctly, and Hyperspeed no longer crashes due to
blitter problems or that kind of stuff
@ If you manage to die again fast enough after having been killed, you will
not get an implosion effect. This is due to the complexity of the
explosion engine and the fact that there is only _one_ ship explosion
slot (whereas there are 30 for the aliens...). I think that increasing the
time before a new ship will solve the problem.
? When new aliens appear, maybe I should try to have them "uncloak" ? I'm
thinking of an effect somewhat like that of the Shadows in Babylon 5. I'll
have to consider if it can be done in real time... (I'm not going to add
anims for each and every alien just to have them uncloak!)
0.4d - Ehrm, this is a pretty much complete rewrite. The sprite blitting routines have been merged into one, and sprites are now loaded from cicn resources. The entire application framework has been changed, and it now relies on a number of utility functions found in the YL-ShellCodeLib. The utility functions include object oriented sound management and graphics utilities.
+ Complete rewrite (is that a feature?)
+ Animated aliens (when they turn left/right, that is)
+ A new alien -- the dreadful spinning devil
+ Levels!!! Yes, that's right! I have settled on a level structure, and
people can actually design their own levels if they want... I'll be
bundling the TMPL for the HSLv resource so you can see what all the action
is based upon...
+ Fading now relies upon Matt Slot's excellent gamma fading lib. It's not
as smooth as clut fading, but it does the trick.
+ Hyperspeed now handles screens larger than 640x480 -- but until I get it
tested, I won't know for sure...
+ All the stuff that was in the previous two versions, with the notable
exception of a working options screen and a number of other small quirks
(points, among others)
* Shots that are "offscreen" (the blue shots) now reappear onscreen again
if they during their path went offscreen
? imploding ships... Instead of the "old and boring" plain particle
explosion, I'm thinking of adding particle implosion before the actual
explosion (that is, particles that move _inwards_ to the ship).
? A new weapon that charges, then fires a particle beam of some sort...
Maybe in conjuntion with the imploding ships?
@ Drawing may not always work correctly (leading to crashes), but I think
I've got it sorted out -- it doesn't crash so often now :-)
0.3d - I'm making some real progress now. Atleast I think so... I will start working on the level design and implementation real soon now.
+ Aliens that fire (with two different weapons that do _exactly_ the same
thing -- kill you!!!). They fire a bit too often right now, though...
+ Working Options screen, though prefs are not saved right now, and the
key settings are not configurable yet. You can currently change number
of stars, 3D star scrolling, explosion detail, sound on/off and stereo
panning on/off
> Levels... Yes that's right (I just forgot it for 0.2d)
@ The stereo panning doesn't work the way it should for some weird and
obscure reason. It may be related to my hardware panning settings, but
since I haven't been able to find/change these settings anywhere, I reason
that it must be a software bug (i.e. a bug in Hyperspeed)
0.2d - Okay, since I have worked on Hyperspeed for some time now, and not bothered to keep a version history around, Hyperspeed has been noted as 0.2d for quite a while (there was no 0.1d). Anyway, here is a listing of features that are currently implemented:
+ Game screen
+ Credits and help screen (help screen not fully implemented yet,
it currently only contains one screen)
+ A settings screen (which isn't fully implemented either -- but it
looks good!)
+ Complete control over SSC-12 and weapons
+ Bonuses appear at random intervals (quite frequently for testing purposes)
+ Aliens appear randomly, and very often
+ Basic point-handling, no high score list
+ Extremely cool starfield which tracks the ship and behaves in a 3D-like way
+ Even cooler pixel explosions
+ Good sound support, lame sounds, and stereo panning!
+ Excellent drawing engine (CopyBits()/direct to screen combo)
+ Nice fading (works flawlessly -- thanks csmpg/Tricks of the Mac Game
Programming Gurus!)
- Blinking/colorchanging stars (they just looked too.. uhm.. psychedelic!)